{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 1,
   "id": "18526f8b-6682-42fc-bba8-8388dc9bb573",
   "metadata": {},
   "outputs": [],
   "source": [
    "#导入相关实验模块\n",
    "import mindspore\n",
    "# 载入 mindspore 的默认数据集\n",
    "import mindspore.dataset as ds\n",
    "# 常用转化用算子\n",
    "import mindspore.dataset.transforms.c_transforms as C\n",
    "# 图像转化用算子\n",
    "####____####\n",
    "import mindspore.dataset.vision.c_transforms as CV\n",
    "from mindspore.common import dtype as mstype\n",
    "# mindspore 的 tensor\n",
    "from mindspore import Tensor\n",
    "# 各类网络层都在 nn 里面\n",
    "import mindspore.nn as nn\n",
    "# 参数初始化的方式\n",
    "from mindspore.common.initializer import TruncatedNormal\n",
    "# 设置 mindspore 运行的环境\n",
    "from mindspore import context\n",
    "# 引入训练时候会使用到回调函数，如 checkpoint, lossMoniter\n",
    "from mindspore.train.callback import ModelCheckpoint, CheckpointConfig, LossMonitor, TimeMonitor\n",
    "# 引入模型\n",
    "from mindspore.train import Model\n",
    "# 引入评估模型的包\n",
    "from mindspore.nn.metrics import Accuracy\n",
    "# numpy\n",
    "import numpy as np\n",
    "# 画图用\n",
    "import matplotlib.pyplot as plt\n",
    "####____####\n",
    "# 下载数据相关的包\n",
    "import os\n",
    "import requests \n",
    "import zipfile"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "id": "7a961b14-491c-43c6-aa23-05908a810b38",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "--2023-05-07 16:01:11--  https://ascend-professional-construction-dataset.obs.cn-north-4.myhuaweicloud.com/ComputerVision/cifar10_mindspore.zip\n",
      "Resolving ascend-professional-construction-dataset.obs.cn-north-4.myhuaweicloud.com (ascend-professional-construction-dataset.obs.cn-north-4.myhuaweicloud.com)... 100.125.83.5, 100.125.76.5, 100.125.83.133\n",
      "Connecting to ascend-professional-construction-dataset.obs.cn-north-4.myhuaweicloud.com (ascend-professional-construction-dataset.obs.cn-north-4.myhuaweicloud.com)|100.125.83.5|:443... connected.\n",
      "HTTP request sent, awaiting response... 200 OK\n",
      "Length: 170441801 (163M) [application/zip]\n",
      "Saving to: ‘cifar10_mindspore.zip’\n",
      "\n",
      "cifar10_mindspore.z 100%[===================>] 162.55M   211MB/s    in 0.8s    \n",
      "\n",
      "2023-05-07 16:01:12 (211 MB/s) - ‘cifar10_mindspore.zip’ saved [170441801/170441801]\n",
      "\n",
      "Archive:  cifar10_mindspore.zip\n",
      "   creating: data/\n",
      "   creating: data/10-batches-bin/\n",
      "  inflating: data/10-batches-bin/batches.meta.txt  \n",
      "  inflating: data/10-batches-bin/data_batch_1.bin  \n",
      "  inflating: data/10-batches-bin/data_batch_2.bin  \n",
      "  inflating: data/10-batches-bin/data_batch_3.bin  \n",
      "  inflating: data/10-batches-bin/data_batch_4.bin  \n",
      "  inflating: data/10-batches-bin/data_batch_5.bin  \n",
      "   creating: data/10-verify-bin/\n",
      "  inflating: data/10-verify-bin/test_batch.bin  \n",
      "   creating: images/\n",
      "  inflating: images/01.png           \n",
      "  inflating: images/lenet.jpg        \n",
      "   creating: results/\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 576x576 with 9 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "#数据集展示与数据初始化\n",
    "!wget https://ascend-professional-construction-dataset.obs.cn-north-4.myhuaweicloud.com/ComputerVision/cifar10_mindspore.zip\n",
    "!unzip cifar10_mindspore.zip\n",
    "#创建图像标签列表\n",
    "category_dict = {0:'airplane',1:'automobile',2:'bird',3:'cat',4:'deer',5:'dog', 6:'frog',7:'horse',8:'ship',9:'truck'}\n",
    "####____####\n",
    "current_path = os.getcwd()\n",
    "data_path = os.path.join(current_path, 'data/10-verify-bin')\n",
    "cifar_ds = ds.Cifar10Dataset(data_path)\n",
    "# 设置图像大小\n",
    "plt.figure(figsize=(8,8))\n",
    "i = 1\n",
    "# 打印 9 张子图\n",
    "for dic in cifar_ds.create_dict_iterator():\n",
    "     plt.subplot(3,3,i)\n",
    "     ####____####\n",
    "     plt.imshow(dic['image'].asnumpy())\n",
    "     plt.xticks([])\n",
    "     plt.yticks([])\n",
    "     plt.axis('off')\n",
    "     plt.title(category_dict[dic['label'].asnumpy().sum()])\n",
    "     i +=1\n",
    "     if i > 9 :\n",
    "         break\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "id": "5b1b8388-4b3a-4d30-bfb3-c71aeb51c377",
   "metadata": {},
   "outputs": [],
   "source": [
    "#定义数据预处理的步骤\n",
    "def get_data(datapath):\n",
    "    cifar_ds = ds.Cifar10Dataset(datapath)\n",
    "    return cifar_ds\n",
    "def process_dataset(cifar_ds,batch_size =32,status=\"train\"):\n",
    "    '''\n",
    "    ---- 定义算子 ----\n",
    "    '''\n",
    "    # 归一化\n",
    "    rescale = 1.0 / 255.0\n",
    "    # 平移\n",
    "    shift = 0.0\n",
    "    resize_op = CV.Resize((32, 32))\n",
    "    rescale_op = CV.Rescale(rescale, shift)\n",
    "    # 对于 RGB 三通道分别设定 mean 和 std\n",
    "    normalize_op = CV.Normalize((0.4914, 0.4822, 0.4465), (0.2023, 0.1994, 0.2010))\n",
    "    if status == \"train\":\n",
    "        # 随机裁剪\n",
    "        random_crop_op = CV.RandomCrop([32, 32], [4, 4, 4, 4])\n",
    "        # 随机翻转\n",
    "        random_horizontal_op = CV.RandomHorizontalFlip()\n",
    "    # 通道变化\n",
    "    channel_swap_op = CV.HWC2CHW()\n",
    "    # 类型变化\n",
    "    typecast_op = C.TypeCast(mstype.int32)\n",
    "    '''\n",
    "    ---- 算子运算 ----\n",
    "    '''\n",
    "    cifar_ds = cifar_ds.map(input_columns=\"label\", operations=typecast_op)\n",
    "    if status == \"train\":\n",
    "        cifar_ds = cifar_ds.map(input_columns=\"image\", operations=random_crop_op)\n",
    "        cifar_ds = cifar_ds.map(input_columns=\"image\", operations=random_horizontal_op)\n",
    "    cifar_ds = cifar_ds.map(input_columns=\"image\", operations=resize_op)\n",
    "    cifar_ds = cifar_ds.map(input_columns=\"image\", operations=rescale_op)\n",
    "    cifar_ds = cifar_ds.map(input_columns=\"image\", operations=normalize_op)\n",
    "    cifar_ds = cifar_ds.map(input_columns=\"image\", operations=channel_swap_op)\n",
    " \n",
    "    # shuffle\n",
    "    cifar_ds = cifar_ds.shuffle(buffer_size=1000)\n",
    "    # 切分数据集到 batch_size\n",
    "    cifar_ds = cifar_ds.batch(batch_size, drop_remainder=True)\n",
    "    return cifar_ds"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "id": "92531f62-dba1-40c1-9f5f-9b1eddf44df7",
   "metadata": {},
   "outputs": [],
   "source": [
    "# 生成训练数据集\n",
    "data_path = os.path.join(current_path, 'data/10-batches-bin')\n",
    "batch_size=32\n",
    "status=\"train\"\n",
    "# 生成训练数据集\n",
    "cifar_ds = get_data(data_path)\n",
    "ds_train = process_dataset(cifar_ds,batch_size =batch_size, status=status)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "id": "e644ea3e-2691-4258-8645-40625232229b",
   "metadata": {},
   "outputs": [],
   "source": [
    "#定义 Lenet 网络结构，构建网络\n",
    "\"\"\"LeNet.\"\"\"\n",
    "def conv(in_channels, out_channels, kernel_size, stride=1, padding=0):\n",
    "    \"\"\"weight initial for conv layer\"\"\"\n",
    "    weight = weight_variable()\n",
    "    return nn.Conv2d(in_channels, out_channels,\n",
    "    kernel_size=kernel_size, stride=stride, padding=padding,\n",
    "    weight_init=weight, has_bias=False, pad_mode=\"same\")\n",
    "def fc_with_initialize(input_channels, out_channels):\n",
    "    \"\"\"weight initial for fc layer\"\"\"\n",
    "    weight = weight_variable()\n",
    "    bias = weight_variable()\n",
    "    return nn.Dense(input_channels, out_channels, weight, bias)\n",
    "def weight_variable():\n",
    "    \"\"\"weight initial\"\"\"\n",
    "    return TruncatedNormal(0.02)\n",
    "class LeNet5(nn.Cell):\n",
    "    \"\"\"\n",
    "    Lenet network\n",
    "    Args:\n",
    "    num_class (int): Num classes. Default: 10.\n",
    "    Returns:\n",
    "    Tensor, output tensor\n",
    "    Examples:\n",
    "    >>> LeNet(num_class=10)\n",
    "    \"\"\"\n",
    "    def __init__(self, num_class=10, channel=3):\n",
    "        super(LeNet5, self).__init__()\n",
    "        self.num_class = num_class\n",
    "        self.conv1 = conv(channel, 6, 5)\n",
    "        self.conv2 = conv(6, 16, 5)\n",
    "        self.fc1 = fc_with_initialize(16 * 8 * 8, 120)\n",
    "        self.fc2 = fc_with_initialize(120, 84)\n",
    "        self.fc3 = fc_with_initialize(84, self.num_class)\n",
    "        self.relu = nn.ReLU()\n",
    "        self.max_pool2d = nn.MaxPool2d(kernel_size=2, stride=2)\n",
    "        self.flatten = nn.Flatten()\n",
    "    def construct(self, x):\n",
    "        x = self.conv1(x)\n",
    "        x = self.relu(x)\n",
    "        x = self.max_pool2d(x)\n",
    "        x = self.conv2(x)\n",
    "        x = self.relu(x)\n",
    "        x = self.max_pool2d(x)\n",
    "        x = self.flatten(x)\n",
    "        x = self.fc1(x)\n",
    "        x = self.relu(x)\n",
    "        x = self.fc2(x)\n",
    "        x = self.relu(x)\n",
    "        x = self.fc3(x)\n",
    "        return x\n",
    "# 构建网络\n",
    "network = LeNet5(10)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "id": "5c3dd0e3-4ecf-4226-8eed-4db80502ce1b",
   "metadata": {},
   "outputs": [],
   "source": [
    "#定义损失函数和优化器\n",
    "# 返回当前设备\n",
    "device_target = mindspore.context.get_context('device_target')\n",
    "# 确定图模型是否下沉到芯片上\n",
    "dataset_sink_mode = True if device_target in ['Ascend','GPU'] else False\n",
    "# 设置模型的设备与图的模式\n",
    "context.set_context(mode=context.GRAPH_MODE, device_target=device_target)\n",
    "# 使用交叉熵函数作为损失函数\n",
    "net_loss = nn.SoftmaxCrossEntropyWithLogits(sparse=True, reduction=\"mean\")\n",
    "# 优化器为 Adam\n",
    "net_opt = nn.Adam(params=network.trainable_params(), learning_rate=0.001)\n",
    "# 监控每个 epoch 训练的时间\n",
    "time_cb = TimeMonitor(data_size=ds_train.get_dataset_size())"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "id": "a84f1139-5c65-4c26-b013-b29701d080b0",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "============== Starting Training ==============\n",
      "epoch: 1 step: 1562, loss is 1.5739457607269287\n",
      "{'Accuracy': 0.42639644686299616}\n",
      "epoch: 2 step: 1562, loss is 1.1766672134399414\n",
      "{'Accuracy': 0.4915973111395647}\n",
      "epoch: 3 step: 1562, loss is 1.1791722774505615\n",
      "{'Accuracy': 0.540312900128041}\n",
      "epoch: 4 step: 1562, loss is 1.0002433061599731\n",
      "{'Accuracy': 0.5717429577464789}\n",
      "epoch: 5 step: 1562, loss is 1.0197412967681885\n",
      "{'Accuracy': 0.5600192061459667}\n",
      "epoch: 6 step: 1562, loss is 0.7628352046012878\n",
      "{'Accuracy': 0.610475352112676}\n",
      "epoch: 7 step: 1562, loss is 0.8473550081253052\n",
      "{'Accuracy': 0.6063340268886044}\n",
      "epoch: 8 step: 1562, loss is 1.3576939105987549\n",
      "{'Accuracy': 0.6274207746478874}\n",
      "epoch: 9 step: 1562, loss is 1.1556588411331177\n",
      "{'Accuracy': 0.6301016325224071}\n",
      "epoch: 10 step: 1562, loss is 1.1752058267593384\n",
      "{'Accuracy': 0.6417853713188221}\n",
      "epoch: 11 step: 1562, loss is 1.2516725063323975\n",
      "{'Accuracy': 0.6354433418693982}\n",
      "epoch: 12 step: 1562, loss is 0.9101186990737915\n",
      "{'Accuracy': 0.6459266965428937}\n",
      "epoch: 13 step: 1562, loss is 1.2598698139190674\n",
      "{'Accuracy': 0.6594910371318822}\n",
      "epoch: 14 step: 1562, loss is 1.1985034942626953\n",
      "{'Accuracy': 0.6596510883482715}\n",
      "epoch: 15 step: 1562, loss is 1.1038551330566406\n",
      "{'Accuracy': 0.6643525928297055}\n",
      "epoch: 16 step: 1562, loss is 1.2964510917663574\n",
      "{'Accuracy': 0.6658530729833547}\n",
      "epoch: 17 step: 1562, loss is 0.8579186201095581\n",
      "{'Accuracy': 0.6594910371318822}\n",
      "epoch: 18 step: 1562, loss is 0.8982025384902954\n",
      "{'Accuracy': 0.6641125160051217}\n",
      "epoch: 19 step: 1562, loss is 1.0167639255523682\n",
      "{'Accuracy': 0.6768365877080665}\n",
      "epoch: 20 step: 1562, loss is 1.2162398099899292\n",
      "{'Accuracy': 0.6576304417413572}\n",
      "epoch: 21 step: 1562, loss is 0.9234445691108704\n",
      "{'Accuracy': 0.6772967349551856}\n",
      "epoch: 22 step: 1562, loss is 0.5974898338317871\n",
      "{'Accuracy': 0.6826384443021767}\n",
      "epoch: 23 step: 1562, loss is 0.9593087434768677\n",
      "{'Accuracy': 0.6795574583866837}\n",
      "epoch: 24 step: 1562, loss is 1.0240039825439453\n",
      "{'Accuracy': 0.6798775608194623}\n",
      "epoch: 25 step: 1562, loss is 0.9574564099311829\n",
      "{'Accuracy': 0.6797975352112676}\n",
      "epoch: 26 step: 1562, loss is 1.0328309535980225\n",
      "{'Accuracy': 0.6895406530089628}\n",
      "epoch: 27 step: 1562, loss is 0.6699262261390686\n",
      "{'Accuracy': 0.6862395966709347}\n",
      "epoch: 28 step: 1562, loss is 0.9288976192474365\n",
      "{'Accuracy': 0.6878601152368758}\n",
      "epoch: 29 step: 1562, loss is 0.9172885417938232\n",
      "{'Accuracy': 0.6901208386683739}\n",
      "epoch: 30 step: 1562, loss is 0.6672383546829224\n",
      "{'Accuracy': 0.6873399487836107}\n",
      "epoch: 31 step: 1562, loss is 1.5783568620681763\n",
      "{'Accuracy': 0.6890404929577465}\n",
      "epoch: 32 step: 1562, loss is 0.8263469934463501\n",
      "{'Accuracy': 0.6941421254801536}\n",
      "epoch: 33 step: 1562, loss is 0.93711918592453\n",
      "{'Accuracy': 0.6968229833546735}\n",
      "epoch: 34 step: 1562, loss is 0.8611451387405396\n",
      "{'Accuracy': 0.692721670934699}\n",
      "epoch: 35 step: 1562, loss is 0.8396739959716797\n",
      "{'Accuracy': 0.6911411651728553}\n",
      "epoch: 36 step: 1562, loss is 1.0385534763336182\n",
      "{'Accuracy': 0.7040452944942381}\n",
      "epoch: 37 step: 1562, loss is 0.7315375208854675\n",
      "{'Accuracy': 0.7001840588988476}\n",
      "epoch: 38 step: 1562, loss is 0.6931681632995605\n",
      "{'Accuracy': 0.6898407490396927}\n",
      "epoch: 39 step: 1562, loss is 0.9590716361999512\n",
      "{'Accuracy': 0.7032450384122919}\n",
      "epoch: 40 step: 1562, loss is 0.5923475027084351\n",
      "{'Accuracy': 0.6975432138284251}\n",
      "epoch: 41 step: 1562, loss is 0.8837947249412537\n",
      "{'Accuracy': 0.7077664852752881}\n",
      "epoch: 42 step: 1562, loss is 1.0592076778411865\n",
      "{'Accuracy': 0.7133282650448144}\n",
      "epoch: 43 step: 1562, loss is 0.8884578943252563\n",
      "{'Accuracy': 0.7068461907810499}\n",
      "epoch: 44 step: 1562, loss is 0.8882930278778076\n",
      "{'Accuracy': 0.7104073303457106}\n",
      "epoch: 45 step: 1562, loss is 0.6595184206962585\n",
      "{'Accuracy': 0.7149487836107554}\n",
      "epoch: 46 step: 1562, loss is 0.7588934898376465\n",
      "{'Accuracy': 0.7128481113956466}\n",
      "epoch: 47 step: 1562, loss is 0.7393012046813965\n",
      "{'Accuracy': 0.7131882202304738}\n",
      "epoch: 48 step: 1562, loss is 0.8757765293121338\n",
      "{'Accuracy': 0.7187299935979513}\n",
      "epoch: 49 step: 1562, loss is 1.0840065479278564\n",
      "{'Accuracy': 0.7191701344430218}\n",
      "epoch: 50 step: 1562, loss is 0.6389128565788269\n",
      "{'Accuracy': 0.7102872919334187}\n",
      "epoch: 51 step: 1562, loss is 0.6711001396179199\n",
      "{'Accuracy': 0.7203104993597952}\n",
      "epoch: 52 step: 1562, loss is 0.6671401262283325\n",
      "{'Accuracy': 0.7117877720870679}\n",
      "epoch: 53 step: 1562, loss is 0.8653958439826965\n",
      "{'Accuracy': 0.7235715428937259}\n",
      "epoch: 54 step: 1562, loss is 0.9308066368103027\n",
      "{'Accuracy': 0.7145286491677336}\n",
      "epoch: 55 step: 1562, loss is 0.8524150848388672\n",
      "{'Accuracy': 0.712187900128041}\n",
      "epoch: 56 step: 1562, loss is 0.7916377782821655\n",
      "{'Accuracy': 0.7113676376440461}\n",
      "epoch: 57 step: 1562, loss is 0.9542012214660645\n",
      "{'Accuracy': 0.700044014084507}\n",
      "epoch: 58 step: 1562, loss is 0.8185282945632935\n",
      "{'Accuracy': 0.7196702944942381}\n",
      "epoch: 59 step: 1562, loss is 0.81316077709198\n",
      "{'Accuracy': 0.7170494558258643}\n",
      "epoch: 60 step: 1562, loss is 0.7089956402778625\n",
      "{'Accuracy': 0.714568661971831}\n",
      "epoch: 61 step: 1562, loss is 0.8327656388282776\n",
      "{'Accuracy': 0.7191101152368758}\n",
      "epoch: 62 step: 1562, loss is 0.813651442527771\n",
      "{'Accuracy': 0.7177896927016645}\n",
      "epoch: 63 step: 1562, loss is 0.7689459323883057\n",
      "{'Accuracy': 0.7186499679897568}\n",
      "epoch: 64 step: 1562, loss is 0.6433547139167786\n",
      "{'Accuracy': 0.7284531049935979}\n",
      "epoch: 65 step: 1562, loss is 0.7194582223892212\n",
      "{'Accuracy': 0.7149487836107554}\n",
      "epoch: 66 step: 1562, loss is 0.901374101638794\n",
      "{'Accuracy': 0.7210107234314981}\n",
      "epoch: 67 step: 1562, loss is 0.878239631652832\n",
      "{'Accuracy': 0.7125280089628682}\n",
      "epoch: 68 step: 1562, loss is 0.6315861940383911\n",
      "{'Accuracy': 0.7279729513444302}\n",
      "epoch: 69 step: 1562, loss is 0.8034029603004456\n",
      "{'Accuracy': 0.7255921895006402}\n",
      "epoch: 70 step: 1562, loss is 1.0599912405014038\n",
      "{'Accuracy': 0.7190701024327785}\n",
      "epoch: 71 step: 1562, loss is 0.8067282438278198\n",
      "{'Accuracy': 0.7295534571062741}\n",
      "epoch: 72 step: 1562, loss is 1.0155811309814453\n",
      "{'Accuracy': 0.7189900768245838}\n",
      "epoch: 73 step: 1562, loss is 0.9927036166191101\n",
      "{'Accuracy': 0.7344550256081946}\n",
      "epoch: 74 step: 1562, loss is 0.7643644213676453\n",
      "{'Accuracy': 0.7128080985915493}\n",
      "epoch: 75 step: 1562, loss is 0.832660436630249\n",
      "{'Accuracy': 0.7268125800256082}\n",
      "epoch: 76 step: 1562, loss is 0.7051773071289062\n",
      "{'Accuracy': 0.7262724071702945}\n",
      "epoch: 77 step: 1562, loss is 1.140220284461975\n",
      "{'Accuracy': 0.7232914532650448}\n",
      "epoch: 78 step: 1562, loss is 1.3057736158370972\n",
      "{'Accuracy': 0.7341349231754162}\n",
      "epoch: 79 step: 1562, loss is 0.9871601462364197\n",
      "{'Accuracy': 0.7293333866837388}\n",
      "epoch: 80 step: 1562, loss is 0.43772727251052856\n",
      "{'Accuracy': 0.7275728233034571}\n",
      "epoch: 81 step: 1562, loss is 1.0829923152923584\n",
      "{'Accuracy': 0.7293533930857875}\n",
      "epoch: 82 step: 1562, loss is 0.5003178715705872\n",
      "{'Accuracy': 0.7204505441741357}\n",
      "epoch: 83 step: 1562, loss is 0.7204949259757996\n",
      "{'Accuracy': 0.7346550896286812}\n",
      "epoch: 84 step: 1562, loss is 1.2865722179412842\n",
      "{'Accuracy': 0.7066061139564661}\n",
      "epoch: 85 step: 1562, loss is 0.8276722431182861\n",
      "{'Accuracy': 0.7255121638924455}\n",
      "epoch: 86 step: 1562, loss is 0.5104625821113586\n",
      "{'Accuracy': 0.7279529449423816}\n",
      "epoch: 87 step: 1562, loss is 1.2052297592163086\n",
      "{'Accuracy': 0.7315340909090909}\n",
      "epoch: 88 step: 1562, loss is 0.696815550327301\n",
      "{'Accuracy': 0.7251320422535211}\n",
      "epoch: 89 step: 1562, loss is 0.9338823556900024\n",
      "{'Accuracy': 0.7310539372599232}\n",
      "epoch: 90 step: 1562, loss is 0.9464079141616821\n",
      "{'Accuracy': 0.7260523367477593}\n",
      "epoch: 91 step: 1562, loss is 0.6653785109519958\n",
      "{'Accuracy': 0.7255521766965429}\n",
      "epoch: 92 step: 1562, loss is 0.9646876454353333\n",
      "{'Accuracy': 0.7372959346991037}\n",
      "epoch: 93 step: 1562, loss is 0.990289568901062\n",
      "{'Accuracy': 0.7330745838668374}\n",
      "epoch: 94 step: 1562, loss is 1.0287048816680908\n",
      "{'Accuracy': 0.724791933418694}\n",
      "epoch: 95 step: 1562, loss is 0.6559441685676575\n",
      "{'Accuracy': 0.7352352752880922}\n",
      "epoch: 96 step: 1562, loss is 1.0933246612548828\n",
      "{'Accuracy': 0.728393085787452}\n",
      "epoch: 97 step: 1562, loss is 0.6129604578018188\n",
      "{'Accuracy': 0.7304137323943662}\n",
      "epoch: 98 step: 1562, loss is 0.8754481077194214\n",
      "{'Accuracy': 0.7330545774647887}\n",
      "epoch: 99 step: 1562, loss is 1.145947813987732\n",
      "{'Accuracy': 0.7337347951344431}\n",
      "epoch: 100 step: 1562, loss is 0.8051384687423706\n",
      "{'Accuracy': 0.7393565941101152}\n"
     ]
    }
   ],
   "source": [
    "#定义保存路径与训练\n",
    "from mindspore.train.callback import Callback\n",
    "class EvalCallBack(Callback):\n",
    "    def __init__(self, model, eval_dataset, eval_per_epoch, epoch_per_eval):\n",
    "        self.model = model\n",
    "        self.eval_dataset = eval_dataset\n",
    "        self.eval_per_epoch = eval_per_epoch\n",
    "        self.epoch_per_eval = epoch_per_eval\n",
    "    def epoch_end(self, run_context):\n",
    "        cb_param = run_context.original_args()\n",
    "        cur_epoch = cb_param.cur_epoch_num\n",
    "        if cur_epoch % self.eval_per_epoch == 0:\n",
    "            acc = self.model.eval(self.eval_dataset, dataset_sink_mode=False)\n",
    "            self.epoch_per_eval[\"epoch\"].append(cur_epoch)\n",
    "            self.epoch_per_eval[\"acc\"].append(acc[\"Accuracy\"])\n",
    "            print(acc)\n",
    "# 设置 CheckpointConfig，callback 函数。save_checkpoint_steps=训练总数/batch_size\n",
    "config_ck = CheckpointConfig(save_checkpoint_steps=1562,keep_checkpoint_max=10)\n",
    "ckpoint_cb = ModelCheckpoint(prefix=\"checkpoint_lenet_original\", \n",
    "directory='./results',config=config_ck)\n",
    "# 建立可训练模型\n",
    "model = Model(network = network, loss_fn=net_loss,optimizer=net_opt, metrics={\"Accuracy\":Accuracy()})\n",
    "eval_per_epoch = 1\n",
    "epoch_per_eval = {\"epoch\": [], \"acc\": []}\n",
    "eval_cb = EvalCallBack(model, ds_train, eval_per_epoch, epoch_per_eval)\n",
    "print(\"============== Starting Training ==============\")\n",
    "model.train(100, ds_train,callbacks=[ckpoint_cb, \n",
    "LossMonitor(per_print_times=1),eval_cb],dataset_sink_mode=dataset_sink_mode)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "id": "54410185-3041-40ce-86c8-ff7dc39d9ff9",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "test results: {'Accuracy': 0.7340745192307693}\n"
     ]
    }
   ],
   "source": [
    "#设置测试集参数及测试\n",
    "data_path = os.path.join(current_path, 'data/10-verify-bin')\n",
    "batch_size=32\n",
    "status=\"test\"\n",
    "# 生成测试数据集\n",
    "cifar_ds = ds.Cifar10Dataset(data_path)\n",
    "ds_eval = process_dataset(cifar_ds,batch_size=batch_size,status=status)\n",
    "res = model.eval(ds_eval, dataset_sink_mode=dataset_sink_mode)\n",
    "# 评估测试集\n",
    "print('test results:',res)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "id": "53b559dc-6092-4fb6-bff0-1c2f1f9b2a85",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 720x720 with 9 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "#图片类别预测与可视化\n",
    "#创建图像标签列表\n",
    "category_dict = {0:'airplane',1:'automobile',2:'bird',3:'cat',4:'deer',5:'dog',6:'frog',7:'horse',8:'ship',9:'truck'}\n",
    "cifar_ds = get_data('./data/10-verify-bin')\n",
    "df_test = process_dataset(cifar_ds,batch_size=1,status='test')\n",
    "def normalization(data):\n",
    "    _range = np.max(data) - np.min(data)\n",
    "    return (data - np.min(data)) / _range\n",
    "# 设置图像大小\n",
    "plt.figure(figsize=(10,10))\n",
    "i = 1\n",
    "# 打印 9 张子图\n",
    "for dic in df_test:\n",
    "    # 预测单张图片\n",
    "    input_img = dic[0] \n",
    "    output = model.predict(Tensor(input_img))\n",
    "    output = nn.Softmax()(output)\n",
    "    # 反馈可能性最大的类别\n",
    "    predicted = np.argmax(output.asnumpy(),axis=1)[0]\n",
    " \n",
    "    # 可视化\n",
    "    plt.subplot(3,3,i)\n",
    "    # 删除 batch 维度\n",
    "    input_image = np.squeeze(input_img.asnumpy(),axis=0).transpose(1,2,0)\n",
    "    # 重新归一化，方便可视化\n",
    "    input_image = normalization(input_image)\n",
    "    plt.imshow(input_image)\n",
    "    plt.xticks([])\n",
    "    plt.yticks([])\n",
    "    plt.axis('off')\n",
    "    plt.title('True label:%s,\\n Predicted:%s'%(category_dict[dic[1].asnumpy().sum()],category_dict[predicted]))\n",
    "    i +=1\n",
    "    if i > 9 :\n",
    "        break\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "id": "06e9e1b8-5a71-4596-8ee8-c677a6a4d957",
   "metadata": {},
   "outputs": [],
   "source": [
    "class LeNet5_2(nn.Cell):\n",
    "    \"\"\"\n",
    "    Lenet network\n",
    " \n",
    "    Args:\n",
    "    num_class (int): Num classes. Default: 10.\n",
    "    Returns:\n",
    "    Tensor, output tensor\n",
    "    Examples:\n",
    "    >>> LeNet(num_class=10)\n",
    "    \"\"\"\n",
    "    def __init__(self, num_class=10, channel=3):\n",
    "        super(LeNet5_2, self).__init__()\n",
    "        self.num_class = num_class\n",
    "        self.conv1_1 = conv(channel, 8, 3)\n",
    "        self.bn2_1 = nn.BatchNorm2d(num_features=8)\n",
    "        self.conv1_2 = conv(8, 16, 3)\n",
    "        self.bn2_2 = nn.BatchNorm2d(num_features=16) \n",
    "        self.conv2_1 = conv(16, 32, 3)\n",
    "        self.bn2_3 = nn.BatchNorm2d(num_features=32) \n",
    "        self.conv2_2 = conv(32, 64, 3)\n",
    "        self.bn2_4 = nn.BatchNorm2d(num_features=64)\n",
    "        self.fc1 = fc_with_initialize(64*8*8, 120)\n",
    "        self.bn1_1 = nn.BatchNorm1d(num_features=120)\n",
    "        self.fc2 = fc_with_initialize(120, 84)\n",
    "        self.bn1_2 = nn.BatchNorm1d(num_features=84)\n",
    "        self.fc3 = fc_with_initialize(84, self.num_class)\n",
    "        self.relu = nn.ReLU() \n",
    "        self.max_pool2d = nn.MaxPool2d(kernel_size=2, stride=2)\n",
    "        self.flatten = nn.Flatten()\n",
    " \n",
    " \n",
    "    def construct(self, x):\n",
    "        x = self.conv1_1(x)\n",
    "        x = self.bn2_1(x)\n",
    "        x = self.relu(x)\n",
    "        x = self.conv1_2(x)\n",
    "        x = self.bn2_2(x)\n",
    "        x = self.relu(x)\n",
    "        x = self.max_pool2d(x)\n",
    "        x = self.conv2_1(x)\n",
    "        x = self.bn2_3(x)\n",
    "        x = self.relu(x)\n",
    "        x = self.conv2_2(x)\n",
    "        x = self.bn2_4(x)\n",
    "        x = self.relu(x)\n",
    "        x = self.max_pool2d(x) \n",
    "        x = self.flatten(x)\n",
    "        x = self.fc1(x)\n",
    "        x = self.bn1_1(x)\n",
    "        x = self.fc2(x)\n",
    "        x = self.bn1_2(x)\n",
    "        x = self.relu(x)\n",
    "        x = self.fc3(x)\n",
    "        return x"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "id": "f7cc784a-0717-4042-8333-cb47907a5228",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "============== Starting Training ==============\n",
      "epoch: 1 step: 1562, loss is 1.4931752681732178\n",
      "{'Accuracy': 0.5737435979513444}\n",
      "epoch: 2 step: 1562, loss is 0.7185851335525513\n",
      "{'Accuracy': 0.6345030409731114}\n",
      "epoch: 3 step: 1562, loss is 1.0955337285995483\n",
      "{'Accuracy': 0.6920414532650448}\n",
      "epoch: 4 step: 1562, loss is 1.086344599723816\n",
      "{'Accuracy': 0.7152088668373879}\n",
      "epoch: 5 step: 1562, loss is 0.6780919432640076\n",
      "{'Accuracy': 0.7295934699103713}\n",
      "epoch: 6 step: 1562, loss is 1.0063791275024414\n",
      "{'Accuracy': 0.7384362996158771}\n",
      "epoch: 7 step: 1562, loss is 1.2238483428955078\n",
      "{'Accuracy': 0.7535011203585147}\n",
      "epoch: 8 step: 1562, loss is 0.6412101984024048\n",
      "{'Accuracy': 0.7699063700384123}\n",
      "epoch: 9 step: 1562, loss is 0.5391221642494202\n",
      "{'Accuracy': 0.7658050576184379}\n",
      "epoch: 10 step: 1562, loss is 0.9503408670425415\n",
      "{'Accuracy': 0.7779489436619719}\n",
      "epoch: 11 step: 1562, loss is 0.7968008518218994\n",
      "{'Accuracy': 0.784270966709347}\n",
      "epoch: 12 step: 1562, loss is 0.7079538702964783\n",
      "{'Accuracy': 0.7749279769526248}\n",
      "epoch: 13 step: 1562, loss is 0.5943718552589417\n",
      "{'Accuracy': 0.7965749039692702}\n",
      "epoch: 14 step: 1562, loss is 0.38518792390823364\n",
      "{'Accuracy': 0.7975152048655569}\n",
      "epoch: 15 step: 1562, loss is 0.5511296987533569\n",
      "{'Accuracy': 0.8075184058898848}\n",
      "epoch: 16 step: 1562, loss is 0.9503386616706848\n",
      "{'Accuracy': 0.8099791933418694}\n",
      "epoch: 17 step: 1562, loss is 0.8085787892341614\n",
      "{'Accuracy': 0.8108794814340589}\n",
      "epoch: 18 step: 1562, loss is 0.7193843722343445\n",
      "{'Accuracy': 0.8116797375160051}\n",
      "epoch: 19 step: 1562, loss is 0.25447943806648254\n",
      "{'Accuracy': 0.8123199423815621}\n",
      "epoch: 20 step: 1562, loss is 0.4660341739654541\n",
      "{'Accuracy': 0.8224231754161332}\n",
      "epoch: 21 step: 1562, loss is 0.6024235486984253\n",
      "{'Accuracy': 0.8138804417413572}\n",
      "epoch: 22 step: 1562, loss is 0.6426851749420166\n",
      "{'Accuracy': 0.8243037772087067}\n",
      "epoch: 23 step: 1562, loss is 0.25618016719818115\n",
      "{'Accuracy': 0.8295654609475032}\n",
      "epoch: 24 step: 1562, loss is 0.7086688280105591\n",
      "{'Accuracy': 0.8333866837387964}\n",
      "epoch: 25 step: 1562, loss is 0.40715259313583374\n",
      "{'Accuracy': 0.838288252240717}\n",
      "epoch: 26 step: 1562, loss is 0.6354981660842896\n",
      "{'Accuracy': 0.8335467349551856}\n",
      "epoch: 27 step: 1562, loss is 0.3460824489593506\n",
      "{'Accuracy': 0.837067861715749}\n",
      "epoch: 28 step: 1562, loss is 0.6038780808448792\n",
      "{'Accuracy': 0.8386683738796414}\n",
      "epoch: 29 step: 1562, loss is 0.5735278129577637\n",
      "{'Accuracy': 0.8360075224071702}\n",
      "epoch: 30 step: 1562, loss is 0.3762480318546295\n",
      "{'Accuracy': 0.8405489756722151}\n",
      "epoch: 31 step: 1562, loss is 0.5223469734191895\n",
      "{'Accuracy': 0.8419294174135723}\n",
      "epoch: 32 step: 1562, loss is 0.5355894565582275\n",
      "{'Accuracy': 0.8415693021766966}\n",
      "epoch: 33 step: 1562, loss is 0.51247239112854\n",
      "{'Accuracy': 0.8462908130601793}\n",
      "epoch: 34 step: 1562, loss is 0.47935062646865845\n",
      "{'Accuracy': 0.8450504161331626}\n",
      "epoch: 35 step: 1562, loss is 0.6000475883483887\n",
      "{'Accuracy': 0.8494118117797695}\n",
      "epoch: 36 step: 1562, loss is 0.5228118300437927\n",
      "{'Accuracy': 0.8506922215108835}\n",
      "epoch: 37 step: 1562, loss is 0.6772797107696533\n",
      "{'Accuracy': 0.8523927656850192}\n",
      "epoch: 38 step: 1562, loss is 0.7723556756973267\n",
      "{'Accuracy': 0.8500320102432779}\n",
      "epoch: 39 step: 1562, loss is 0.33921074867248535\n",
      "{'Accuracy': 0.8540132842509603}\n",
      "epoch: 40 step: 1562, loss is 0.5124708414077759\n",
      "{'Accuracy': 0.8528529129321383}\n",
      "epoch: 41 step: 1562, loss is 0.5531795024871826\n",
      "{'Accuracy': 0.8531129961587708}\n",
      "epoch: 42 step: 1562, loss is 0.4315207302570343\n",
      "{'Accuracy': 0.8532530409731114}\n",
      "epoch: 43 step: 1562, loss is 0.3675256371498108\n",
      "{'Accuracy': 0.8587748079385403}\n",
      "epoch: 44 step: 1562, loss is 0.5319055318832397\n",
      "{'Accuracy': 0.8597751280409731}\n",
      "epoch: 45 step: 1562, loss is 0.31872934103012085\n",
      "{'Accuracy': 0.8597551216389244}\n",
      "epoch: 46 step: 1562, loss is 0.6370714902877808\n",
      "{'Accuracy': 0.8592749679897568}\n",
      "epoch: 47 step: 1562, loss is 0.6220058798789978\n",
      "{'Accuracy': 0.8615556978233034}\n",
      "epoch: 48 step: 1562, loss is 0.22270408272743225\n",
      "{'Accuracy': 0.8636563700384123}\n",
      "epoch: 49 step: 1562, loss is 0.24324862658977509\n",
      "{'Accuracy': 0.8573343469910372}\n",
      "epoch: 50 step: 1562, loss is 0.5535971522331238\n",
      "{'Accuracy': 0.8624759923175416}\n",
      "epoch: 51 step: 1562, loss is 0.4854951798915863\n",
      "{'Accuracy': 0.8644366197183099}\n",
      "epoch: 52 step: 1562, loss is 0.8367873430252075\n",
      "{'Accuracy': 0.8679977592829705}\n",
      "epoch: 53 step: 1562, loss is 0.5320378541946411\n",
      "{'Accuracy': 0.8607754481434059}\n",
      "epoch: 54 step: 1562, loss is 0.5473639965057373\n",
      "{'Accuracy': 0.862516005121639}\n",
      "epoch: 55 step: 1562, loss is 0.40465378761291504\n",
      "{'Accuracy': 0.8667173495518566}\n",
      "epoch: 56 step: 1562, loss is 0.2300138771533966\n",
      "{'Accuracy': 0.8681778169014085}\n",
      "epoch: 57 step: 1562, loss is 0.46081268787384033\n",
      "{'Accuracy': 0.8639964788732394}\n",
      "epoch: 58 step: 1562, loss is 0.3196823000907898\n",
      "{'Accuracy': 0.8662772087067862}\n",
      "epoch: 59 step: 1562, loss is 0.31488698720932007\n",
      "{'Accuracy': 0.8706586107554417}\n",
      "epoch: 60 step: 1562, loss is 0.3770064413547516\n",
      "{'Accuracy': 0.8697983354673495}\n",
      "epoch: 61 step: 1562, loss is 0.49726587533950806\n",
      "{'Accuracy': 0.8730193661971831}\n",
      "epoch: 62 step: 1562, loss is 0.19177600741386414\n",
      "{'Accuracy': 0.8706986235595391}\n",
      "epoch: 63 step: 1562, loss is 0.30142858624458313\n",
      "{'Accuracy': 0.8713588348271447}\n",
      "epoch: 64 step: 1562, loss is 0.6303755044937134\n",
      "{'Accuracy': 0.8742597631241997}\n",
      "epoch: 65 step: 1562, loss is 0.3339158594608307\n",
      "{'Accuracy': 0.8761603713188221}\n",
      "epoch: 66 step: 1562, loss is 0.2862686216831207\n",
      "{'Accuracy': 0.8746198783610756}\n",
      "epoch: 67 step: 1562, loss is 0.3080560266971588\n",
      "{'Accuracy': 0.8735995518565941}\n",
      "epoch: 68 step: 1562, loss is 0.4919954538345337\n",
      "{'Accuracy': 0.8729793533930857}\n",
      "epoch: 69 step: 1562, loss is 0.7045921683311462\n",
      "{'Accuracy': 0.8785811459667093}\n",
      "epoch: 70 step: 1562, loss is 0.2730671167373657\n",
      "{'Accuracy': 0.8763004161331626}\n",
      "epoch: 71 step: 1562, loss is 0.30183079838752747\n",
      "{'Accuracy': 0.874939980793854}\n",
      "epoch: 72 step: 1562, loss is 0.4545325040817261\n",
      "{'Accuracy': 0.8778609154929577}\n",
      "epoch: 73 step: 1562, loss is 0.4492879807949066\n",
      "{'Accuracy': 0.8704585467349552}\n",
      "epoch: 74 step: 1562, loss is 0.34020793437957764\n",
      "{'Accuracy': 0.8787612035851472}\n",
      "epoch: 75 step: 1562, loss is 0.42335641384124756\n",
      "{'Accuracy': 0.8788612355953905}\n",
      "epoch: 76 step: 1562, loss is 0.4697999954223633\n",
      "{'Accuracy': 0.8794214148527529}\n",
      "epoch: 77 step: 1562, loss is 0.42201924324035645\n",
      "{'Accuracy': 0.8779809539052497}\n",
      "epoch: 78 step: 1562, loss is 0.5060673952102661\n",
      "{'Accuracy': 0.8775408130601793}\n",
      "epoch: 79 step: 1562, loss is 0.1486900895833969\n",
      "{'Accuracy': 0.8788212227912933}\n",
      "epoch: 80 step: 1562, loss is 0.4798421859741211\n",
      "{'Accuracy': 0.8815420934699104}\n",
      "epoch: 81 step: 1562, loss is 0.3861827850341797\n",
      "{'Accuracy': 0.8774207746478874}\n",
      "epoch: 82 step: 1562, loss is 0.7390101552009583\n",
      "{'Accuracy': 0.8807018245838668}\n",
      "epoch: 83 step: 1562, loss is 0.466553270816803\n",
      "{'Accuracy': 0.8811219590268886}\n",
      "epoch: 84 step: 1562, loss is 0.23484383523464203\n",
      "{'Accuracy': 0.8811019526248399}\n",
      "epoch: 85 step: 1562, loss is 0.3241878151893616\n",
      "{'Accuracy': 0.8810819462227913}\n",
      "epoch: 86 step: 1562, loss is 0.6250208616256714\n",
      "{'Accuracy': 0.8846630921895007}\n",
      "epoch: 87 step: 1562, loss is 0.10087522119283676\n",
      "{'Accuracy': 0.8808218629961587}\n",
      "epoch: 88 step: 1562, loss is 0.41511619091033936\n",
      "{'Accuracy': 0.8842229513444302}\n",
      "epoch: 89 step: 1562, loss is 0.26214081048965454\n",
      "{'Accuracy': 0.8852832906530089}\n",
      "epoch: 90 step: 1562, loss is 0.2749408483505249\n",
      "{'Accuracy': 0.8842429577464789}\n",
      "epoch: 91 step: 1562, loss is 0.44405558705329895\n",
      "{'Accuracy': 0.8864236555697823}\n",
      "epoch: 92 step: 1562, loss is 0.24608869850635529\n",
      "{'Accuracy': 0.8822423175416133}\n",
      "epoch: 93 step: 1562, loss is 0.27329525351524353\n",
      "{'Accuracy': 0.8853233034571063}\n",
      "epoch: 94 step: 1562, loss is 0.37973546981811523\n",
      "{'Accuracy': 0.8854833546734955}\n",
      "epoch: 95 step: 1562, loss is 0.46231144666671753\n",
      "{'Accuracy': 0.8871038732394366}\n",
      "epoch: 96 step: 1562, loss is 0.1937657594680786\n",
      "{'Accuracy': 0.8898047375160051}\n",
      "epoch: 97 step: 1562, loss is 0.3530433177947998\n",
      "{'Accuracy': 0.8897047055057619}\n",
      "epoch: 98 step: 1562, loss is 0.5878940224647522\n",
      "{'Accuracy': 0.8896046734955185}\n",
      "epoch: 99 step: 1562, loss is 0.32808613777160645\n",
      "{'Accuracy': 0.8871438860435339}\n",
      "epoch: 100 step: 1562, loss is 0.2702433466911316\n",
      "{'Accuracy': 0.8865837067861716}\n"
     ]
    }
   ],
   "source": [
    "data_path = os.path.join(current_path, 'data/10-batches-bin')\n",
    "batch_size=32\n",
    "status=\"train\"\n",
    "# 生成训练数据集\n",
    "cifar_ds = get_data(data_path)\n",
    "ds_train = process_dataset(cifar_ds,batch_size =batch_size, status=status)\n",
    "network = LeNet5_2(10)\n",
    "#network = resnet50(10)\n",
    "# 返回当前设备\n",
    "device_target = mindspore.context.get_context('device_target')\n",
    "# 确定图模型是否下沉到芯片上\n",
    "dataset_sink_mode = True if device_target in ['Ascend','GPU'] else False\n",
    "# 设置模型的设备与图的模式\n",
    "context.set_context(mode=context.GRAPH_MODE, device_target=device_target)\n",
    "# 使用交叉熵函数作为损失函数\n",
    "net_loss = nn.SoftmaxCrossEntropyWithLogits(sparse=True, reduction=\"mean\")\n",
    "# 优化器为 momentum\n",
    "#net_opt = nn.Momentum(params=network.trainable_params(), learning_rate=0.01, momentum=0.9)\n",
    "net_opt = nn.Adam(params=network.trainable_params(), learning_rate=0.001)\n",
    "# 时间监控，反馈每个 epoch 的运行时间\n",
    "time_cb = TimeMonitor(data_size=ds_train.get_dataset_size())\n",
    "# 设置 callback 函数。\n",
    "config_ck = CheckpointConfig(save_checkpoint_steps=1562, keep_checkpoint_max=10)\n",
    "ckpoint_cb = ModelCheckpoint(prefix=\"checkpoint_lenet_2_verified\",directory='./results', config=config_ck)\n",
    "# 建立可训练模型\n",
    "model = Model(network = network, loss_fn=net_loss,optimizer=net_opt, metrics={\"Accuracy\":Accuracy()})\n",
    "eval_per_epoch = 1\n",
    "epoch_per_eval = {\"epoch\": [], \"acc\": []}\n",
    "eval_cb = EvalCallBack(model, ds_train, eval_per_epoch, epoch_per_eval)\n",
    "print(\"============== Starting Training ==============\")\n",
    "model.train(100, ds_train,callbacks=[ckpoint_cb, \n",
    "LossMonitor(per_print_times=1),eval_cb],dataset_sink_mode=dataset_sink_mode)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "id": "b24ce85c-459f-4d6c-bea5-505457ddc54d",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "test results: {'Accuracy': 0.8469551282051282}\n"
     ]
    }
   ],
   "source": [
    "#评估模型的有效性\n",
    "data_path = os.path.join(current_path, 'data/10-verify-bin')\n",
    "batch_size=32\n",
    "status=\"test\"\n",
    "# 生成测试数据集\n",
    "cifar_ds = ds.Cifar10Dataset(data_path)\n",
    "ds_eval = process_dataset(cifar_ds,batch_size=batch_size,status=status)\n",
    "res = model.eval(ds_eval, dataset_sink_mode=dataset_sink_mode)\n",
    "# 评估测试集\n",
    "print('test results:',res)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "id": "1ad43b51-d339-4bf9-9f77-055d061478e4",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 720x720 with 9 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "#图片类别预测与可视化\n",
    "#创建图像标签列表\n",
    "category_dict = {0:'airplane',1:'automobile',2:'bird',3:'cat',4:'deer',5:'dog',6:'frog',7:'horse',8:'ship',9:'truck'}\n",
    "cifar_ds = get_data('./data/10-verify-bin')\n",
    "df_test = process_dataset(cifar_ds,batch_size=1,status='test')\n",
    "def normalization(data):\n",
    "    _range = np.max(data) - np.min(data)\n",
    "    return (data - np.min(data)) / _range\n",
    "# 设置图像大小\n",
    "plt.figure(figsize=(10,10))\n",
    "i = 1\n",
    "# 打印 9 张子图\n",
    "for dic in df_test:\n",
    "    # 预测单张图片\n",
    "    input_img = dic[0] \n",
    "    output = model.predict(Tensor(input_img))\n",
    "    output = nn.Softmax()(output)\n",
    "    # 反馈可能性最大的类别\n",
    "    predicted = np.argmax(output.asnumpy(),axis=1)[0]\n",
    " \n",
    "    # 可视化\n",
    "    plt.subplot(3,3,i)\n",
    "    # 删除 batch 维度\n",
    "    input_image = np.squeeze(input_img.asnumpy(),axis=0).transpose(1,2,0)\n",
    "    # 重新归一化，方便可视化\n",
    "    input_image = normalization(input_image)\n",
    "    plt.imshow(input_image)\n",
    "    plt.xticks([])\n",
    "    plt.yticks([])\n",
    "    plt.axis('off')\n",
    "    plt.title('True label:%s,\\n Predicted:%s'%(category_dict[dic[1].asnumpy().sum()],category_dict[predicted]))\n",
    "    i +=1\n",
    "    if i > 9 :\n",
    "        break\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "9726a1bf-2701-4cb5-92cc-c4ebdd75808e",
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "MindSpore",
   "language": "python",
   "name": "mindspore"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.7.6"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
